import socket
import select
import sys

def tcp_client():
    #sys.argv里本来就有一个自身，列表长度=1说明没有传新的地址
    if len(sys.argv)==1:
        print('这是自己的ip')#是没连上服务器的意思，要运行的时候传参 IP号192.168.124.132，

        ip='192.168.124.132'
    else:
        # 传参了就连上服务器了，服务器要先开，等着客户端连接
        # 注意哦这里要在执行程序的时候，自己手动传参 ip ，也就是argv[1]
        ip=sys.argv[1]
    client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    dest_addr=(ip,2000)
    client.connect(dest_addr)
    epoll=select.epoll()
    epoll.register(client.fileno(),select.EPOLLIN)
    epoll.register(sys.stdin.fileno(),select.EPOLLIN)
    while True:
        events=epoll.poll(-1)
        for fd,event in events:
            # 如果接收缓冲区有数据，就接受数据
            if fd==client.fileno():
                data=client.recv(1000)
                if data:
                    print(data.decode('utf8'))
                else:
                    print('对方断开了')
                    return
            # 如果标准输入缓冲区有数据，就输入并发给对方
            elif fd == sys.stdin.fileno():
                data=input()
                client.send(data.encode('utf8'))
    client.close()

if __name__ == '__main__':
    tcp_client()